<?php

require_once dirname(__FILE__).'/../lib/detalleserviciosGeneratorConfiguration.class.php';
require_once dirname(__FILE__).'/../lib/detalleserviciosGeneratorHelper.class.php';
//require_once dirname(__FILE__).'/../../../../../lib/impresion/fpdf.php';

/**
 * detalleservicios actions.
 *
 * @package    gescell
 * @subpackage detalleservicios
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 12474 2008-10-31 10:41:27Z fabien $
 */
class detalleserviciosActions extends autoDetalleserviciosActions
{
  
    public function executeListMail(sfWebRequest $request){
        
        $id = $request->getParameter('id');
        $modelosxingresos = modelosxingresosPeer::retrieveByPK($id);
        $ordenServicio = $modelosxingresos->getOrdenesservicioId();
        $criteria = new Criteria;
        $criteria->addJoin(clientesPeer::ID, ordenesservicioPeer::CLIENTES_ID,Criteria::INNER_JOIN);
        $criteria->add(ordenesservicioPeer::ID,$ordenServicio);
        $cliente = clientesPeer::doSelectOne($criteria);
        if ($cliente->getCorreo1())
             $destino = $cliente->getCorreo1();
        else
            $destino = $cliente->getCorreo2();
        if ($destino) {
            backendConfiguration::registerZend();
            $config = array(
                'auth' => 'login',
                'username' => 'info+unlockpy.com.ar',
                'password' => 'info6297',
                'ssl' => 'ssl',
                'port' => 465
            );
            $tr = new    Zend_Mail_Transport_Smtp('princess.invisionarg.com',$config);
            Zend_Mail::setDefaultTransport($tr);
            $mail = new Zend_Mail();
            $mensaje = utf8_decode('La reparacion de su equipo: '.$modelosxingresos->getmodelos(). ' ha finalizado, puede pasar a retirarlo. Servicio de Avisos de GesCell. Gracias');
            $mail->setBodyText($mensaje);
            $mail->setFrom('info@unlockpy.com.ar', 'Gescell');
            $mail->addTo($destino);
            $mail->setSubject(utf8_decode('Reparacion Realizada'));
            try{
                $mail->send();
                $this->getUser()->setFlash('notice', 'Se notifico al Usuario con exito');
                $this->redirect('@modelosxingresos');
            }
            catch(Zend_Mail_Exception $e){
                $this->getUser()->setFlash('error', 'No se pudo enviar el mail ya que no hay conexion a internet');
                $this->redirect('@modelosxingresos');
            }

        }
        else{
           $this->getUser()->setFlash('error', 'No se pudo enviar el mail ya que no esta registrado el mail del Cliente');
           $this->redirect('@modelosxingresos');
        }
      }
    

    public function executeEdit(sfWebRequest $request)
  {
    $this->modelosxingresos = $this->getRoute()->getObject();
    $this->form = $this->configuration->getForm($this->modelosxingresos);
    $this->form->modelosxingresos = $this->modelosxingresos;
    $this->form->listadefallas  = modelosxingresosPeer::getTrabajosRealizados($this->modelosxingresos->getId());
    
  }
   public function executeGuardar(){
        $this->forward404unless($this->getRequest()->isXmlHttpRequest());
        $modelosxingresos_id =  $this->getRequest()->getparameter('modelosxingresos_id');
        $preciosxmodelos_id =    $this->getRequest()->getparameter('listadeprecios_id');
        $estadosdereparacion_id = $this->getRequest()->getparameter('estadosdereparacion_id');
        //$sf_guard_user =        $this->getUser()->getGuardUser()->getId();
        $cantidad =             $this->getRequest()->getparameter('cantidad');
        $observacion =          $this->getRequest()->getparameter('observacion');
        $equipo = new modelosxingresos(); $equipo = modelosxingresosPeer::retrieveByPK($modelosxingresos_id);
        if(!$equipo->getReparado()){
            if ($this->verificarDetalles()){

                    $precios = preciosxmodelosPeer::retrieveByPK($preciosxmodelos_id);
                    $informesxingresos = new informesxingresos();
                    $informesxingresos->setModelosxingresosId($modelosxingresos_id);
                    $informesxingresos->setpreciosxmodelosid($preciosxmodelos_id);
                    $informesxingresos->setCantidad($cantidad);
                    if($equipo->getGarantia()){
                        $informesxingresos->setObservaciones('Reparación en Garantía, '.$observacion);
                        $informesxingresos->setPrecio(0);
                        $informesxingresos->setIva(0);
                    }
                    else{
                        if($estadosdereparacion_id == 1){
                           $informesxingresos->setPrecio($precios->getPrecio());
                           $informesxingresos->setIva($precios->getIva());
                        }
                        else{
                           $informesxingresos->setPrecio(0);
                           $informesxingresos->setIva(0);
                        }
                    //$informesxingresos->setSfGuardUser($sf_guard_user);
                         $informesxingresos->setObservaciones($observacion);
                    }
                    $informesxingresos->setEstadosdereparacionId($estadosdereparacion_id);
                    $informesxingresos->save();
                    $this->form = new informesxingresosForm();
                    $this->form->listadefallas  = modelosxingresosPeer::getTrabajosRealizados($modelosxingresos_id);
                    $this->form->modelosxingresos = modelosxingresosPeer::retrieveByPK($modelosxingresos_id);
                    return $this->renderpartial('edit_trabajos_realizados');
            }
            else{
                $this->getResponse()->setStatusCode(404);
                return $this->rendertext('Error: Dato Repetido');
            }
        }
        else{
          $this->getResponse()->setStatusCode(404);
          return  $this->rendertext('El registro esta Guardado');
        }

  }
  public function verificarDetalles(){
      $modelosxingresos_id =  $this->getRequest()->getparameter('modelosxingresos_id');
      $listadeprecios_id   =  $this->getRequest()->getparameter('listadeprecios_id');
      $criteria = new Criteria();
      $criteria->add(informesxingresosPeer::MODELOSXINGRESOS_ID, $modelosxingresos_id);
      $criteria->add(informesxingresosPeer::PRECIOSXMODELOS_ID, $listadeprecios_id);
      $resutaldo = new informesxingresos();
      $resultado = informesxingresosPeer::doSelectOne($criteria);

      if (!$resultado){
          return true;
      }
      else{
          return false;
      }
  }
  public function executeBorrar_detalle(){
       $modelosxingresos_id =  $this->getRequest()->getParameter('modelosxingresos_id');
       $modelosxingresos = new modelosxingresos();
       $modelosxingresos = modelosxingresosPeer::retrieveByPK($modelosxingresos_id);
       if(!$modelosxingresos->getReparado()){
           $informesxingresos_id   =  $this->getRequest()->getParameter('informesxingresos_id');
           //$criteria = new Criteria();
           //$criteria->add(informesxingresosPeer::MODELOSXINGRESOS_ID, $modelosxingresos_id);
           //$criteria->add(informesxingresosPeer::PRECIOSXMODELOS_ID, $preciosxmodelos_id);
           //$informesxingresos = new informesxingresos();
           $informesxingresos = informesxingresosPeer::retrieveByPK($informesxingresos_id);
           $informesxingresos->delete();
           //$modelosxingresosPeer = new modelosxingresosPeer();
           $this->form = new modelosxingresosForm();
           $this->form->listadefallas  = modelosxingresosPeer::getTrabajosRealizados($modelosxingresos_id);

           //$this->form->modelosxingresos = modelosxingresosPeer::retrieveByPK($modelosxingresos_id);
           return $this->renderpartial('edit_trabajos_realizados');
       }
       else{
           $this->getResponse()->setStatusCode(404);
           return  $this->rendertext('El registro esta Guardado');
       }
  }
  public function executeBuscarequipos(){
         $this->forward404unless($this->getRequest()->isXmlHttpRequest());
         $buscar =   $this->getRequest()->getparameter('buscar');
         $criterio = $this->getRequest()->getparameter('criterio');
         $entrega =  $this->getRequest()->getparameter('entrega');
         $this->lista_de_equipos =$this->BusquedaEquipos($buscar, $criterio, $entrega);
         if($this->lista_de_equipos)
            if ($entrega)
               return $this->renderpartial('resultado_equipos_a_entregar',array('lista_de_equipos' => $this->lista_de_equipos));
            else
              return $this->renderpartial('resultado_busqueda_equipos',array('dibujar' => true, 'lista_de_equipos' => $this->lista_de_equipos));
        else{
            $this->getResponse()->setStatusCode(404);
            return $this->rendertext('No existen resultados que coincidan con su criterio de busqueda o no existen reparaciones pendientes');
         }
  }
  public function executeListImprimir()
    {
  	        $this->modelosxingresos = $this->getRoute()->getObject();
                $modelosxingresos_id = $this->modelosxingresos->getId();
                $pdf = informes::CrearReporte('Informe Tecnico 2');
                $criteria = new Criteria();
                $modelos = new modelosxingresos();
                $criteria->add(modelosxingresosPeer::ID,$modelosxingresos_id);
                $modelos = modelosxingresosPeer::doSelect($criteria);
                $modelosPeer = new modelosxingresosPeer();
                $detalles = $modelosPeer->getTrabajosRealizados($modelosxingresos_id);



                $pdf->SetFont('Arial','',7);
		$pdf->SetFillColor(255,255,255);
		$pdf->SetTextColor(0);
                $anchoencabezado = 4;

		   foreach($modelos as $modelo){
			    $modeloid= $modelo->getmodelos();
                            $pdf->Cell(100,$anchoencabezado,'Marca y Modelo: '.$modeloid,0,0,'L',1);
			    $imei= $modelo->getImei();
                            $pdf->Cell(62,$anchoencabezado,'IMEI: '.$imei,0,1,'R',1);
			    $ordenesservicio= $modelo->getOrdenesservicioId();
                            $pdf->Cell(100,$anchoencabezado,'Orden de Servicio: '.$ordenesservicio,0,0,'L',1);
                            $pdf->Cell(62,$anchoencabezado,'Fecha de Reparacion: '.$modelo->getFechareparacion('d/m/y'),0,1,'R',1);
			    $propietario = $modelo->getPropietario();
                            $pdf->Cell(162,$anchoencabezado,'PROPIETARIO: '.$propietario,0,1,'L',1);
		   }
 	        //Creacion de los Encabezados para los detalles
                $pdf->SetTextColor(0);
	        $pdf->SetFillColor(255,255,255);
		$pdf->SetLineWidth(.1);
		$pdf->SetFont('Arial','B',10);
                $pdf->SetTextColor(0,0,102);
		$pdf->Cell(180,2,'',0,1,'C',0);
		$pdf->Cell(180,7,'Detalles de los Trabajos',0,1,'C',0);
		$pdf->SetFont('Arial','B',8);
                $pdf->SetTextColor(0);
                $pdf->SetFillColor(120,120,120);
		$pdf->SetFont('Arial','B',6);
	        $pdf->Cell(8,5,'ITEM',1,0,'C',1);
		$pdf->SetFont('Arial','B',8);
	        $pdf->Cell(75,5,'DESCRIPCION',1,0,'C',1);
		$pdf->SetFont('Arial','B',6);
		$pdf->Cell(25,5,'PRECIO UNITARIO',1,0,'C',1);
		$pdf->Cell(12,5,'CANTIDAD',1,0,'C',1);
		$pdf->Cell(10,5,'%I.V.A',1,0,'C',1);
		$pdf->Cell(25,5,'IMPUESTO',1,0,'C',1);
		$pdf->Cell(25,5,'SUB TOTAL',1,1,'C',1);
		$pdf->SetFillColor(255,255,255);
		$pdf->SetFont('Arial','B',8);

		//Comento desde aca hasta quien sabe donde
                  $e=1;$precio = 0; $totaliva =0;
		  if ($detalles){
                      foreach ($detalles as $detalle)
                      {
                            $pdf->Cell(8,5,$e++,1,0,'C',1);
                            $descrip = utf8_decode($detalle['detalleinforme']) ;
                            $pdf->Cell(75,5,$descrip,1,0,'L',1);
                            $precio += $detalle['precio']*$detalle['cantidad'];
                            $pdf->Cell(25,5,$detalle['precio'],1,0,'R',1);
                            $canti = $detalle['cantidad'];
                            $pdf->Cell(12,5,$canti,1,0,'C',1);
                            $iva = $detalle['iva'];
                            $totaliva += ($detalle['precio']*$canti*($iva/100));
                            $pdf->Cell(10,5,$iva,1,0,'C',1);
                            $pdf->Cell(25,5,($detalle['precio']*$canti*($iva/100)),1,0,'R',1);
                            $pdf->Cell(25,5,($detalle['precio']*$canti*(1 + $iva/100)),1,1,'R',1);

                      }
                      /*convercion en letras*/
                   /*
                   $tt = $total;
                   $tt = $tt+0.009;
                   $Numero = intval($tt);
                   $Decimales = $tt - Intval($tt);
                   $Decimales= $Decimales*100;
                   $Decimales= Intval($Decimales);
                   $x=$this->NumerosaletrasFacturas($Numero);
                   $y=$this->NumerosaletrasFacturas($Decimales);
                   $v=($x).($y).('guaranies');
                      /*convercion en letras*/

                    $pdf->Cell(180,2,'',0,1,'C',0);

                    $pdf->SetFillColor(255,255,255);
                    $pdf->Cell(120,10,'',0,0,'C',1);
                    $pdf->SetFont('Arial','B',9);
                    $pdf->SetTextColor(0,0,102);
                    $pdf->Cell(60,5,'Totales de la Orden de Servicio',0,1,'C',1);
                    $pdf->SetLineWidth(.1);
                    $pdf->SetFont('Arial','B',8);
                    $pdf->SetTextColor(0);
                    $pdf->Cell(120,$anchoencabezado+1,'',0,0,'L',1);
                    $pdf->Cell(30,$anchoencabezado+1,'TOTAL A NETO:',1,0,'L',1);
                    $pdf->Cell(30,$anchoencabezado+1,number_format($precio,0,',','.').' Gs',1,1,'R',1);
                    $pdf->Cell(120,$anchoencabezado+1,'',0,0,'L',1);
                    $pdf->Cell(30,$anchoencabezado+1,'TOTAL I.V.A:',1,0,'L',1);
                    $pdf->Cell(30,$anchoencabezado+1,number_format($totaliva,0,',','.').' Gs',1,1,'R',1);
                    $pdf->Cell(120,$anchoencabezado+1,'',0,0,'L',1);
                    $pdf->Cell(30,$anchoencabezado+1,'TOTAL A PAGAR:',1,0,'L',0);
                    $pdf->Cell(30,$anchoencabezado+1,number_format($precio + $totaliva,0,',','.').' Gs',1,0,'R',0);
                }
                else {
                      $pdf->Cell(180,5,'El Equipo todavia no esta reparado',1,0,'L',1);
                }

		$pdf->Output('reporte_reparacion_nro'.$ordenesservicio.'.pdf','D');
                return sfView::NONE;
  }

  public function executeListFinalizar(sfWebRequest $request){
      $this->modelosxingresos = $this->getRoute()->getObject();
      if (!$this->modelosxingresos->getReparado()){
          $this->modelosxingresos->setReparado(true);
          $this->modelosxingresos->setFechareparacion(time());
          $this->modelosxingresos->save();
      }
      $this->forward('detalleservicios','listImprimir');
      
  }
  public function executeNew(sfWebRequest $request)
  {
        //$this->form = new modelosxingresosForm();
	//$this->form->setDefault('ordenesservicio_id', $request->getParameter('OrdenServicio'));
	//$this->form->setDefault('estadosdereparacion_id','1');
	//$this->modelosxingresos = $this->form->getObject();
        $this->forward('detalleservicios', 'listNuevo');
    }
   public function executeListNuevo(sfWebRequest $request){

       $this->entrega = $request->getParameter('entrega');
       
   }



/*    public function executeTrabajos(sfWebRequest $request)
  {
 		$this->ingresoid = $request->getParameter('ingresoid');
		if($this->getRequest()->isXmlHttpRequest()){
		       //Actualizacion mediante Ajax
                      $lista_fallas_equipo = DbFinder::From('fallasxingresos')->
						with('listadefallasytrabajos')->
						where('modelosxingresos_id', $request->getParameter('ingresoid'))->
						find();
                      $c1 = new Criteria();
		      $c1->add(listadefallasytrabajosPeer::ID, 'listadefallasytrabajos.id not in (select fallasxingresos.listadefallasytrabajos_id from fallasxingresos where fallasxingresos.modelosxingresos_id ='.$request->getParameter('ingresoid').')', Criteria::CUSTOM);
		      $lista_fallas_aagregar = listadefallasytrabajosPeer::doSelect($c1);
		      return $this->renderpartial('listadetrabajos',array('lista_fallas_aagregar' => $lista_fallas_aagregar,'lista_fallas_equipo'=> $lista_fallas_equipo, 'ingresoid' => $request->getParameter('ingresoid')));
	         }
                 if($this->ingresoid){
                       $c = new Criteria();
                       $c->add(modelosxingresosPeer::ID, $request->getParameter('ingresoid'));
                       if( modelosxingresosPeer::doCount($c) == 1){
                                       $this->lista_fallas_equipo = DbFinder::From('fallasxingresos')->
                                                                                     with('listadefallasytrabajos')->
                                                                                     where('modelosxingresos_id', $request->getParameter('ingresoid'))->
                                                                                     find();

                                       $c1 = new Criteria();
                                       $c1->add(listadefallasytrabajosPeer::ID, 'listadefallasytrabajos.id not in (select fallasxingresos.listadefallasytrabajos_id from fallasxingresos where fallasxingresos.modelosxingresos_id ='.$request->getParameter('ingresoid').')', Criteria::CUSTOM);
                                       $this->lista_fallas_aagregar = listadefallasytrabajosPeer::doSelect($c1);
                                       $this->mensaje = 1;

                        }
                    Else{$this->mensaje = 0;}
                    }
		else{$this->mensaje =0;}
		
  }*/
  public function executeBatchAgregar(sfWebrequest $request){
       
	   $request->checkCSRFProtection();
	   $modeloingresoId = $request->getParameter('ingresoId');
           $ids = $request->getParameter('ids');
           $fallasxingresos = new fallasxingresos();
           foreach($ids as $id){
		  $fallasxingresos->setModelosxingresosId($modeloingresoId);
	      $fallasxingresos->setListadefallasytrabajosId($id);
	      $fallasxingresos->save();
        }
     	   
  }
  /*public function executeAgregar(sfWebrequest $request){
       
	   $modeloingresoId = $request->getParameter('ingresoid');  
	   $ids = $request->getParameter('ids');
           $fallasxingresos = new fallasxingresos();
           $fallasxingresos->setModelosxingresosId($modeloingresoId);
	   $fallasxingresos->setListadefallasytrabajosId($ids);
	   $fallasxingresos->save();
	   
       if($this->getRequest()->isXmlHttpRequest()){
             //Agregado para que encuentre un metodo para lo solicitud Ajax
             //
             $lista_fallas_equipo = DbFinder::From('fallasxingresos')->
	                                with('listadefallasytrabajos')->
					where('modelosxingresos_id', $request->getParameter('ingresoid'))->
					find();
		  
	     $c1 = new Criteria();
             $c1->add(listadefallasytrabajosPeer::ID, 'listadefallasytrabajos.id not in (select fallasxingresos.listadefallasytrabajos_id from fallasxingresos where fallasxingresos.modelosxingresos_id ='.$request->getParameter('ingresoid').')', Criteria::CUSTOM);
             $lista_fallas_aagregar = listadefallasytrabajosPeer::doSelect($c1);
             return $this->renderpartial('listadetrabajos',array('lista_fallas_aagregar' => $lista_fallas_aagregar,'lista_fallas_equipo'=> $lista_fallas_equipo, 'ingresoid' => $request->getParameter('ingresoid')));
        }
        Else{	   
	       $this->getUser()->setFlash('notice','Agregado Correctamente');
	       $this->redirect('detalleservicios/trabajos?ingresoid='.$modeloingresoId);
        }	   
  }*/
   public function executeBorrar(sfWebrequest $request){
       
	   $modeloingresoId = $request->getParameter('ingresoid');  
	   $ids = $request->getParameter('ids');
	   $fallasxingresos = new fallasxingresos();
	   $fallasxingresos = fallasxingresosPeer::retrieveByPk($ids);
	   $fallasxingresos->delete();
	   if ($this->getRequest()->isXmlHttpRequest()){
	        $lista_fallas_equipo = DbFinder::From('fallasxingresos')->
                                       with('listadefallasytrabajos')->
                                       where('modelosxingresos_id', $request->getParameter('ingresoid'))->
                                       find();
                $c1 = new Criteria();
                $c1->add(listadefallasytrabajosPeer::ID, 'listadefallasytrabajos.id not in (select fallasxingresos.listadefallasytrabajos_id from fallasxingresos where fallasxingresos.modelosxingresos_id ='.$request->getParameter('ingresoid').')', Criteria::CUSTOM);
                $lista_fallas_aagregar = listadefallasytrabajosPeer::doSelect($c1);
                return $this->renderpartial('listadetrabajos',array('lista_fallas_aagregar' => $lista_fallas_aagregar,'lista_fallas_equipo'=> $lista_fallas_equipo, 'ingresoid' => $request->getParameter('ingresoid')));
	   }
	   else {
          $this->redirect('detalleservicios/trabajos?ingresoid='.$modeloingresoId);
       }		  
  }

   public function ConsultasABD($ingresoid){
    $lista_fallas_equipo = DbFinder::From('fallasxingresos')->
						                    with('listadefallasytrabajos')->
											where('modelosxingresos_id', $ingresoid)->
											find();
	$c1 = new Criteria();
	$c1->add(listadefallasytrabajosPeer::ID, 'listadefallasytrabajos.id not in (select fallasxingresos.listadefallasytrabajos_id from fallasxingresos where fallasxingresos.modelosxingresos_id ='.$ingresoid.')', Criteria::CUSTOM);
	$lista_fallas_aagregar = listadefallasytrabajosPeer::doSelect($c1); 
    return $this->renderpartial('listadetrabajos',array('lista_fallas_aagregar' => $lista_fallas_aagregar,'lista_fallas_equipo'=> $lista_fallas_equipo, 'ingresoid' => $ingresoid));					    
  }

  protected function BusquedaEquipos($buscar,$criterio,$entrega = null){
         $criteria = new Criteria;
         if (!$entrega)
            $criteria->add(modelosxingresosPeer::REPARADO,false);
         $criteria->add(modelosxingresosPeer::ENTREGADO,false);
         switch ($criterio){
             case 0:
                 $criteria->add(modelosxingresosPeer::IMEI,'%'.$buscar.'%', Criteria::LIKE);
                 $lista_de_equipos = modelosxingresosPeer::doSelect($criteria);
                 break;
             case 1:
                 $criteria->add(modelosxingresosPeer::ORDENESSERVICIO_ID,'%'.$buscar.'%', Criteria::LIKE);
                 $lista_de_equipos = modelosxingresosPeer::doSelect($criteria);
                 break;
             case 2:
                      if(!$entrega){
                      $lista_de_equipos = DbFinder::from('modelosxingresos')->
                                                         where('modelosxingresos.reparado','LIKE', false)->
                                                         where('modelosxingresos.entregado','LIKE', false)->
                                                         join('ordenesservicio')->
                                                         join('clientes')->
                                                         where('clientes.nombre','LIKE', '%'.$buscar.'%')->
                                                         orwhere('clientes.apellido','LIKE', '%'.$buscar.'%')->
                                                         find();
                      }
                      else{
                      $lista_de_equipos = DbFinder::from('modelosxingresos')->
                                                         where('modelosxingresos.entregado','LIKE', false)->
                                                         join('ordenesservicio')->
                                                         join('clientes')->
                                                         where('clientes.nombre','LIKE', '%'.$buscar.'%')->
                                                         orwhere('clientes.apellido','LIKE', '%'.$buscar.'%')->
                                                         find();
                      }
                 break;
         }
         if ($lista_de_equipos)
             return $lista_de_equipos;
         else
             return null;
  }
  public function executeEntregar_equipos(sfWebrequest $request){
      $this->forward404Unless($this->getRequest()->isXmlHttpRequest());
       $id          = $request->getParameter('id');
       $entregado_a = $request->getParameter('entregado_a');
       $modelosxingresos = new modelosxingresos;
       $modelosxingresos= modelosxingresosPeer::retrieveByPK($id);
       $modelosxingresos->setEntregado(true);
       $modelosxingresos->setFechaentrega(time());
       $modelosxingresos->setEntregadoA($entregado_a);
       $modelosxingresos->save();
       return $this->renderText($modelosxingresos->getPropietario());

  }
  protected function processForm(sfWebRequest $request, sfForm $form)
  {
    $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
    if ($form->isValid())
    {
      $notice = $form->getObject()->isNew() ? 'The item was created successfully.' : 'The item was updated successfully.';

      $modelosxingresos = $form->save();

      $this->dispatcher->notify(new sfEvent($this, 'admin.save_object', array('object' => $modelosxingresos)));

      if ($request->hasParameter('_save_and_add'))
      {
        $this->getUser()->setFlash('notice', $notice.' You can add another one below.');

        $this->redirect('@modelosxingresos_new');
      }
      else

      {
          if($request->hasParameter('Finalizar')){
               $this->getUser()->setFlash('notice', 'Se finalizo con exito la Reparación');
               if (!$this->modelosxingresos->getReparado()){
                  $this->modelosxingresos->setReparado(true);
                  $this->modelosxingresos->setFechareparacion(time());
                  $this->modelosxingresos->save();
               }
               $this->redirect(array('sf_route' => 'modelosxingresos_edit', 'sf_subject' => $modelosxingresos));
          }
          else{
        $this->getUser()->setFlash('notice', $notice);

        $this->redirect(array('sf_route' => 'modelosxingresos_edit', 'sf_subject' => $modelosxingresos));
      }
      }
    }
    else
    {
      $this->getUser()->setFlash('error', 'The item has not been saved due to some errors.', false);
    }
  }
  public function executeReporte(){
      
  }
  public function executeGenerarReporte(sfWebRequest $request){
      
      $tecnico_id   = $request->getParameter('tecnicos');
      $criterio     = $request->getParameter('busqueda');
      $fecha_inicio = $request->getParameter('fecha_inicio');
      $fecha_fin    = $request->getParameter('fecha_fin');
      //=========================================================
      //Se suma un dia para poder realizar los reportes entre las fechas elegidas
      //=========================================================
      if ($fecha_inicio['day'] > 0)
          $fecha_inicio  = strftime("%Y-%m-%d", mktime(0, 0, 0, $fecha_inicio['month'], $fecha_inicio['day'], $fecha_inicio['year']));
      else
          $fecha_inicio = date('Y-m-d', time());
      if ($fecha_fin['day'] > 0) 
           $fecha_fin     = strftime("%Y-%m-%d", mktime(0, 0, 0, $fecha_fin['month'], $fecha_fin['day'], $fecha_fin['year']));
       else
          $fecha_fin  = $fecha_inicio;



       //==Creacion del Array para los datos del Reporte
       $cabecera = array(
           '1' => $tecnico_id,
           '2' => $criterio,
           '3' => $fecha_inicio,
           '4' => $fecha_fin

           );
       //==Fin de laCreacion del Array para los datos del Reporte
      $this->reporte = modelosxingresosPeer::getReportes($tecnico_id, $fecha_inicio, $fecha_fin,$criterio['0']);
      $this->imprimirReporte($this->reporte, $cabecera);
      return sfView::NONE;

  }
  public function imprimirReporte($reporte, $cabecera){
               
                $pdf = informes::CrearReporte('Reporte de Reparaciones');
                $tecnico = sfGuardUserPeer::retrieveByPK($cabecera[1]);
                $pdf->Cell(40,4,'Tecnico: '.utf8_decode($tecnico),0,0,'L',1);
                $criterio = $cabecera[2];
                switch ($criterio['0']) {
                    case 1:
                        $TrabReporte = 'Equipos Reparados';Break;
                    case 2:
                        $TrabReporte = 'Equipos en garantías';Break;
                    case 3:
                        $TrabReporte = 'Reingresos de equipos';Break;
                }
                $pdf->Cell(60,4,'Reporte de: ' .utf8_decode($TrabReporte),0,0,'L',1);
                $fecha_inicio= $cabecera['3'];
                $fecha_fin= $cabecera['4'];
                $pdf->Cell(40,4,'Fecha Inicio: '.$fecha_inicio,0,0,'L',1);
		$pdf->Cell(40, 4,'Fecha Fin: '.$fecha_fin, 0, 1, 'L', 1);

                //=======Cabecera reporte=============================
                $pdf->SetTextColor(0,0,102);
                $pdf->Cell(180,10,'Detalles del Reporte',0,1,'C',0);
                $pdf->SetTextColor(255);
                $pdf->Cell(15,4,'Item',1,0,'C',1);
                $pdf->Cell(15,4,'O.T',1,0,'L',1);
                $pdf->Cell(50,4,'Propietario',1,0,'L',1);
                $pdf->Cell(30,4,'Marca y Modelo',1,0,'L',1);
                $pdf->Cell(30,4,'IMEI',1,0,'L',1);
                $pdf->Cell(25,4,'Fecha Ingreso',1,0,'L',1);
                $pdf->Cell(30,4,utf8_decode('Fecha Reparación'),1,1,'L',1);
                //====================================================
                $e = 1;
                foreach($reporte as $report){
                     $pdf->SetTextColor(0);
                     $pdf->Cell(15,4,$e,1,0,'C',0);
                     $os = $report->getOrdenesservicioId();
                     $pdf->Cell(15,4,$os,1,0,'L',0);
                     $propietario = $report->getPropietario();
                     $pdf->Cell(50,4,$propietario,1,0,'L',0);
                     $modelo = modelosPeer::retrieveByPK($report->getModelosId());
                     $marca_modelo = $modelo->__toString();
                     $pdf->Cell(30,4,$marca_modelo,1,0,'L',0);
                     $imei = $report->getImei();
                     $pdf->Cell(30,4,$imei,1,0,'L',0);
                     $fecha1 = $report->getFechaDeIngreso();
                     $pdf->Cell(25,4,$fecha1,1,0,'L',0);
                     $fecha2= $report->getFechaReparacion('d/m/y');
                     $pdf->Cell(30,4,$fecha2,1,1,'L',0);
                     $e++;
                }
                 $pdf->Cell(180,10,'',0,1,'L',0);
                 $pdf->SetTextColor(0,0,102);
                 $texto_salida = utf8_decode('Reporte de: '.$TrabReporte.', En total: '.--$e.', Realizados entre: '.$fecha_inicio.' y '.$fecha_fin);
                 $pdf->Cell(180,4,$texto_salida,0,1,'L',0);
                //====================================================
                $pdf->Output('reporte_'.$TrabReporte.'.pdf','D');
	        
                //====================================================

  }
  
  
   
}
